home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / Buch / Monster5.cpp < prev    next >
C/C++ Source or Header  |  1999-01-21  |  4KB  |  136 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "Monster5.h"
  6. //---------------------------------------------------------------------------
  7. #pragma resource "*.dfm"
  8.  
  9. const String Pfad = "c:\\cpp\\buch\\";
  10.  
  11. class TMonster
  12. {
  13. private:
  14.   String Name;
  15.   String Wesen;
  16.   String Bild;
  17. public:
  18.   virtual void Erscheinen(void);
  19.   virtual String Typ (void) {return "Monster";};
  20.   TMonster (String N, String W, String Datei);
  21.   virtual ~TMonster (void);
  22. };
  23.  
  24. class TGMonster : public TMonster
  25. {
  26. public:
  27.   virtual String Typ (void) {return "GeistesMonster";};
  28.   TGMonster (String N, String W, String Datei);
  29.   virtual ~TGMonster (void);
  30. };
  31.  
  32. class TSMonster : public TMonster
  33. {
  34. public:
  35.   virtual String Typ (void) {return "SeelenMonster";};
  36.   TSMonster (String N, String W, String Datei);
  37.   virtual ~TSMonster (void);
  38. };
  39.  
  40. //---------------------------------------------------------------------------
  41.  
  42. TMonster *WerWohl;
  43. bool Modus;
  44. int  Zufall;
  45. TForm1 *Form1;
  46.  
  47. //---------------------------------------------------------------------------
  48. __fastcall TForm1::TForm1(TComponent* Owner)
  49.     : TForm(Owner)
  50. {
  51. }
  52. //---------------------------------------------------------------------------
  53. // Monster-Konstruktoren
  54. //---------------------------------------------------------------------------
  55. TMonster::TMonster (String N, String W, String Datei)
  56. {
  57.   Name = N; Wesen = W; Bild = Datei;
  58. }
  59. //---------------------------------------------------------------------------
  60. TGMonster::TGMonster (String N, String W, String Datei)
  61.   : TMonster (N, W, Datei)
  62. {
  63. }
  64. //---------------------------------------------------------------------------
  65. TSMonster::TSMonster (String N, String W, String Datei)
  66.  : TMonster (N, W, Datei)
  67. {
  68. }
  69. //---------------------------------------------------------------------------
  70. // Monster-Destruktoren
  71. //---------------------------------------------------------------------------
  72. TMonster::~TMonster (void)
  73. {
  74.   Form1->Label1->Caption = "";
  75.   Form1->Label2->Caption = "";
  76.   Form1->Label3->Caption = "";
  77.   Form1->Image1->Hide();
  78.   // ShowMessage ("Tschⁿ▀!");
  79. }
  80. //---------------------------------------------------------------------------
  81. TGMonster::~TGMonster (void)
  82. {
  83.   ShowMessage ("Ich denke an Dich!");
  84. }
  85. //---------------------------------------------------------------------------
  86. TSMonster::~TSMonster (void)
  87. {
  88.   ShowMessage ("Ich vermisse Dich!");
  89. }
  90. //---------------------------------------------------------------------------
  91. void TMonster::Erscheinen (void)
  92. {
  93.   Form1->Label1->Caption = "Name:    " + Name;
  94.   Form1->Label2->Caption = "Wesen:    " + Wesen;
  95.   Form1->Label3->Caption = "Typ:    " + Typ();
  96.   Form1->Image1->Picture->LoadFromFile (Pfad+Bild);
  97.   Form1->Image1->Show ();
  98. }
  99. //---------------------------------------------------------------------------
  100. void __fastcall TForm1::FormCreate(TObject *Sender)
  101. {
  102.   randomize ();
  103.   Modus = true;
  104. }
  105. //---------------------------------------------------------------------------
  106. void __fastcall TForm1::Button1Click(TObject *Sender)
  107. {
  108.   if (Modus)
  109.   {
  110.     Zufall = random(3);
  111.     switch (Zufall)
  112.     {
  113.       case 0:
  114.         WerWohl =
  115.           new TMonster("Frankie", "ungew÷hnlich", "Frank.bmp");
  116.         break;
  117.       case 1:
  118.         WerWohl =
  119.           new TGMonster("Berti", "nachdenklich", "Albert.bmp");
  120.         break;
  121.       case 2:
  122.         WerWohl =
  123.           new TSMonster("Sigi", "mitfⁿhlend", "Sigmund.bmp");
  124.     }
  125.     WerWohl->Erscheinen ();
  126.     Button1->Caption = "Verschwinden";
  127.   }
  128.   else
  129.   {
  130.     delete WerWohl;
  131.     Button1->Caption = "Erscheinen";
  132.   }
  133.   Modus = !Modus;
  134. }
  135. //---------------------------------------------------------------------------
  136.